home *** CD-ROM | disk | FTP | other *** search
-
- /*******************************************************************************
- ********************************************************************************
- ********************************************************************************
-
- PERMISSION TO COPY THIS SOFTWARE IS HEREBY GIVEN BY THE AUTHOR PROVIDED THAT
- THIS LEADING MESSAGE IS INCLUDED IN ALL OF THE RELEVANT SOURCE FILES.
-
- P. SCHMITZ, UNIVERSITY OF KEELE, MAY 1988.
-
-
- ********************************************************************************
- ********************************************************************************
- *******************************************************************************/
-
- #include "header.h"
-
- #define SPACE " \n"
-
- slaveoutc(c)
- char c;
- {
- write(1,&c,1);
- }
-
- outc(c)
- char c;
- {
- write(v,&c,1);
- }
-
- gettermcapentry(cl,cm,bon,boff)
- char *cl,*cm,*bon,*boff;
- {
- char *CL,*CM,*BON,*BOFF;
- switch(tgetent(bp,getenv("TERM")))
- {
- case -1 :
- fprintf(stderr,"Cannot open your termcap file!!\n");
- return(0);
- break;
- case 0 :
- fprintf(stderr,"Your terminal has no entry in /etc/termcap..sorry!!\n");
- return(0);
- break;
- case 1 :
- fprintf(stderr," Found entry for automatic terminal option\n");
- break;
- default:
- fprintf(stderr,"get_termcap_entry:Somethings wrong!!\n");
- return(0);
- break;
- }
-
- termp=tbp;
- if ((CM=tgetstr("cm",&termp))==NULL)
- {
- fprintf(stderr,"cm problems.\n");
- return(0);
- }
-
- if ((CL=tgetstr("cl",&termp))==NULL)
- {
- fprintf(stderr,"cl problems.\n");
- return(0);
- }
-
- BON=tgetstr("md",&termp);
-
- BOFF=tgetstr("me",&termp);
-
- strcpy(cl,CL);
- strcpy(cm,CM);
- strcpy(bon,BON);
- strcpy(boff,BOFF);
- return(1);
- }
-
-
- assignterminal(tty_type,cl,cm)
- int tty_type;
- char *cl,*cm;
- {
- switch(tty_type)
- {
- case 1:
- cm[0] = '\033';
- cm[1] = 'Y';
- cm[2] = 0+32;
- cm[3] = 0+32;
- cl[0] = '\033';
- cl[1] = 'w';
- break;
- case 2: cm[0] = '\033';
- cm[1] = '=';
- cm[2] = 0+32;
- cm[3] = 0+32;
- cl[0] = '\033';
- cl[1] = '*';
- break;
- case 3:
- cm[0]='\033';
- cm[1]='[';
- cm[2]='0';
- cm[3]='0';
- cm[4]=';';
- cm[5]='0';
- cm[6]='0';
- cm[7]='H';
- cl[0]='\033';
- cl[1]='[';
- cl[2]='2';
- cl[3]='J';
- break;
- case 4:
- cm[0]='\033';
- cm[1]='[';
- cm[2]='0';
- cm[3]='0';
- cm[4]=';';
- cm[5]='0';
- cm[6]='0';
- cm[7]='H';
- cl[0]='N';
- break;
- default:
- break;
- }
- }
-
- /***************************************************************************
- Position cursor routines!!!-> 1) VT200/ADDS 2)Televideo 910/905/ADM3 3) VT100
- 4)SUN's
- ****************************************************************************/
-
- poscursslave(cm,tty_type,x,y)
- char *cm;
- int tty_type,x,y;
- {
- char *b;
- switch(tty_type){
- case 0:
- b=tgoto(cm,x,y);
- tputs(b,1,slaveoutc);
- break;
- case 1:
- cm[2]=y+32;
- cm[3]=x+32;
- write(1,cm,4);
- break;
- case 2:
- cm[2] = y+32;
- cm[3] = x+32;
- write(1,cm,4);
- break;
- case 3:
- case 4:
- ++y;
- cm[5]=x/10+'0';
- cm[6]=x%10+'0';
- cm[2]=y/10+'0';
- cm[3]=y%10+'0';
- write(1,cm,10);
- break;
- default:
- break;
- }
- }
-
- poscurs(cp,x,y)
- register struct player *cp;
- register int x,y;
- {
- char *b;
- switch(cp->tty_type){
-
- case 0:
- v=cp->fd;
- b=tgoto(cp->cm,x,y);
- tputs(b,1,outc);
- break;
- case 1:
- cp->cm[2]=y+32;
- cp->cm[3]=x+32;
- write(cp->fd,cp->cm,4);
- break;
- case 2:
- cp->cm[2] = y+32;
- cp->cm[3] = x+32;
- write(cp->fd,cp->cm,4);
- break;
- case 3:
- case 4:
- ++y;
- cp->cm[5]=x/10+'0';
- cp->cm[6]=x%10+'0';
- cp->cm[2]=y/10+'0';
- cp->cm[3]=y%10+'0';
- write(cp->fd,cp->cm,10);
- break;
- default:
- break;
- }
- }
-
- newgame()
- {
- srand((time(0)%10));
- }
- /*
- *beep() Routine to emit a beep
- */
-
- beep(cp)
- register struct player *cp;
- {
- if (cp->beeping)
- write(cp->fd,"\7",1);
- }
-
-
-
- /*
- *to clear the screen
- */
- clrscreen(cp)
- register struct player *cp;
- {
-
- if (cp->tty_type==0)
- {
- v=cp->fd;
- tputs(cp->cl,1,outc);
- }
- else
- {
- if (cp->cl[0]=='N')
- {
- for(i=0;i<25;++i) write(cp->fd,SPACE,81);
- } else
- write(cp->fd,cp->cl,10);
- }
- }
-
- clrscreenslave(cl,tty_type)
- char *cl;
- int tty_type;
- {
-
- if (tty_type==0)
- tputs(cl,1,slaveoutc);
- else
- {
- if (cl[0]=='N')
- {
- for(i=0;i<27;++i) write(1,SPACE,81);
- } else
- write(1,cl,10);
- }
- }
-
-